package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.MyBaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 好友申请对象 friend_request
 * 
 * @author ruoyi
 * @date 2025-09-17
 */
public class FriendRequest extends MyBaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 好友申请唯一标识 */
    private Long requestId;

    /** 申请人ID（关联用户表） */
    @Excel(name = "申请人ID", readConverterExp = "关=联用户表")
    private Long senderId;

    /** 接收人ID（关联用户表） */
    @Excel(name = "接收人ID", readConverterExp = "关=联用户表")
    private Long receiverId;

    /** 好友申请状态：0-待处理，1-同意，2-拒绝 */
    @Excel(name = "好友申请状态：0-待处理，1-同意，2-拒绝")
    private Integer status;

    /** 处理时间（同意或拒绝的时间） */
    @Excel(name = "处理时间", readConverterExp = "同意或拒绝的时间")
    private Date handleTime;

    /** 申请附带消息 */
    @Excel(name = "申请附带消息")
    private String message;

    /** 是否删除：0-未删除，1-已删除 */
    @Excel(name = "是否删除：0-未删除，1-已删除")
    private Integer isDeleted;

    @Excel(name = "好友备注")
    private String remark;

    /** 乐观锁版本号 */
    @Excel(name = "乐观锁版本号")
    private Long version;

    /** 创建人（通常为sender_id） */
    @Excel(name = "创建人", readConverterExp = "通=常为sender_id")
    private String creator;

    @Excel(name = "好友组")
    private String friendGroup;

    public String getFriendGroup() {
        return friendGroup;
    }

    public void setFriendGroup(String friendGroup) {
        this.friendGroup = friendGroup;
    }

    public void setRequestId(Long requestId)
    {
        this.requestId = requestId;
    }

    public Long getRequestId() 
    {
        return requestId;
    }

    public void setSenderId(Long senderId) 
    {
        this.senderId = senderId;
    }

    public Long getSenderId() 
    {
        return senderId;
    }

    public void setReceiverId(Long receiverId) 
    {
        this.receiverId = receiverId;
    }

    public Long getReceiverId() 
    {
        return receiverId;
    }

    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    @Override
    public String getRemark() {
        return remark;
    }

    @Override
    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getStatus()
    {
        return status;
    }

    public void setHandleTime(Date handleTime) 
    {
        this.handleTime = handleTime;
    }

    public Date getHandleTime() 
    {
        return handleTime;
    }

    public void setMessage(String message) 
    {
        this.message = message;
    }

    public String getMessage() 
    {
        return message;
    }

    public void setIsDeleted(Integer isDeleted) 
    {
        this.isDeleted = isDeleted;
    }

    public Integer getIsDeleted() 
    {
        return isDeleted;
    }

    public void setVersion(Long version) 
    {
        this.version = version;
    }

    public Long getVersion() 
    {
        return version;
    }

    public void setCreator(String creator)
    {
        this.creator = creator;
    }

    public String getCreator()
    {
        return creator;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("requestId", getRequestId())
            .append("senderId", getSenderId())
            .append("receiverId", getReceiverId())
            .append("status", getStatus())
            .append("handleTime", getHandleTime())
            .append("message", getMessage())
            .append("isDeleted", getIsDeleted())
            .append("version", getVersion())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("creator", getCreator())
            .toString();
    }
}
